<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div><h1 id="-">高级功能入门</h1>
<h2 id="labdoc-header-0">一、实验介绍</h2>
<h3 id="labdoc-header-1">1.1 实验内容　</h3>
<p>本次实验将学习vim中的其他高级功能，带大家体验更多vim的魔力。</p><h3 id="labdoc-header-2">1.2 实验知识点</h3>
<ul>
<li>多文件编辑</li>
<li>可视模式</li>
<li>视窗操作</li>
<li>其他高级命令</li>
</ul>
<h2 id="labdoc-header-3">二、实验步骤</h2>
<h3 id="labdoc-header-4">2.1 多文件编辑</h3>
<h4 id="2-1-1-vim-">2.1.1 使用vim编辑多个文件</h4>
<p>编辑多个文件有两种形式，一种是在进入vim前使用的参数就是多个文件。另一种就是进入vim后再编辑其他的文件。
同时创建两个新文件并编辑</p><pre><code class="line-numbers language-js">$ vim <span class="hljs-number"><span class="hljs-number">1</span>.</span>txt <span class="hljs-number"><span class="hljs-number">2</span>.</span>txt
</code></pre><p>默认进入<code>1.txt</code>文件的编辑界面</p><ul>
<li>命令行模式下输入<code>:n</code>编辑2.txt文件，可以加<code>!</code>即<code>:n!</code>强制切换，之前一个文件的输入没有保存，仅仅切换到另一个文件</li>
<li>命令行模式下输入<code>:N</code>编辑1.txt文件，可以加<code>!</code>即<code>:N!</code>强制切换，之前文件内的输入没有保存，仅仅是切换到另一个文件</li>
</ul>
<h4 id="2-1-2-vim-">2.1.2 进入vim后打开新文件</h4>
<ul>
<li>命令行模式下输入<code>:e 3.txt</code> 打开新文件3.txt</li>
<li>命令行模式下输入<code>:e#</code> 回到前一个文件</li>
<li>命令行模式下输入<code>:ls</code>可以列出以前编辑过的文档</li>
<li>命令行模式下输入<code>:b 2.txt</code>（或者编号）可以直接进入文件2.txt编辑</li>
<li>命令行模式下输入<code>:bd 2.txt</code>（或者编号）可以删除以前编辑过的列表中的文件项目</li>
<li>命令行模式下输入<code>:e! 4.txt</code>，新打开文件4.txt，放弃正在编辑的文件</li>
<li>命令行模式下输入<code>:f</code> 显示正在编辑的文件名</li>
<li>命令行模式下输入<code>:f new.txt</code>，改变正在编辑的文件名字为new.txt</li>
</ul>
<h4 id="2-1-3-">2.1.3 恢复文件</h4>
<blockquote>
<p>由于在线环境的特殊性，请在本机尝试</p></blockquote>
<p>如果因为断电等原因造成文档没有保存，可以采用恢复方式，<code>vim -r</code>进入文档后，输入<code>:ewcover 1.txt</code>来恢复</p><pre><code class="line-numbers language-js"><span class="hljs-meta">$</span><span class="bash"> vim -r <span class="hljs-number">1</span>.txt</span>
</code></pre><h3 id="labdoc-header-5">2.2 可视模式</h3>
<h4 id="2-2-1-">2.2.1 可视模式命令简介</h4>
<ul>
<li>在普通模式下输入<code>v</code>（小写），进入字符选择模式，就可以移动光标，光标走过的地方就会选取。再次按下v会后就会取消选取。</li>
<li>在普通模式下输入<code>Shift+v</code>（小写），进入行选择模式，按下V之后就会把整行选取，您可以上下移动光标选更多的行，同样，再按一次<code>Shift+v</code>就可以取消选取。</li>
<li>在普通模式下输入 <code>Ctrl+v</code>（小写），这是区域选择模式，可以进行矩形区域选择，再按一次<code>Ctrl+v</code>取消选取。</li>
<li>在可视模式下输入<code>d</code>删除选取区域内容</li>
<li>在可视模式下输入<code>y</code>复制选取区域内容</li>
</ul>
<h4 id="2-2-2-">2.2.2 可视模式命令练习</h4>
<p>拷贝练习文件到当前目录</p><pre><code class="line-numbers language-js"><span class="hljs-meta">$</span><span class="bash"> cp /etc/protocols .</span>
</code></pre><p>打开练习文件</p><pre><code class="line-numbers language-js"><span class="hljs-meta">$</span><span class="bash"> vim protocols</span>
</code></pre><ul>
<li>在普通模式下<code>9G</code>跳转到第9行,输入<code>Shift+v</code>（小写V），进入可视模式进行行选择，选中5行，按下<code>&gt;&gt;</code>缩进，将5行整体缩进一个<code>shiftwidth</code></li>
<li>在普通模式下输入 <code>Ctrl+v</code>（小写V），进入可视模式进行矩形区域选择，选中第一列字符然后<code>x</code>删除整列</li>
</ul>
<p></p><h3 id="labdoc-header-6">2.3 视窗操作</h3>
<h4 id="2-3-1-">2.3.1 视窗操作简介</h4>
<p>vim可以在一个界面里打开多个窗口进行编辑，这些编辑窗口称为vim的视窗。
打开方法有很多种，例如可以使用在命令行模式下输入<code>:new</code> 打开一个新的vim视窗，并进入视窗编辑一个新文件（普通模式下输入<code>Ctrl+w</code>也可以,但是<code>Ctrl+w</code>在chrome下会与chrome关闭标签页的快捷键冲突，所以使用该快捷键你可以在IE或其它浏览器进行练习），除了<code>:new</code>命令，下述列举的多种方法也可以在命令模式或普通模式下打开新的视窗：</p><ul>
<li>命令行模式下输入<code>:sp 1.txt</code> 打开新的水平分屏视窗来编辑1.txt</li>
<li>命令行模式下输入<code>:vsp 2.txt</code> 打开新的垂直分屏视窗来编辑2.txt</li>
<li>普通模式下<code>Ctrl+w s</code> 将当前窗口分割成两个水平的窗口</li>
<li>普通模式下<code>Ctrl+w v</code> 将当前窗口分割成两个垂直的窗口</li>
<li>普通模式下<code>Ctrl+w q</code>  即 :q 结束分割出来的视窗。如果在新视窗中有输入需要使用强制符！即:q!</li>
<li>普通模式下<code>Ctrl+w o</code> 打开一个视窗并且隐藏之前的所有视窗</li>
<li>普通模式下<code>Ctrl+w j</code> 移至下面视窗</li>
<li>普通模式下<code>Ctrl+w k</code> 移至上面视窗</li>
<li>普通模式下<code>Ctrl+w h</code> 移至左边视窗</li>
<li>普通模式下<code>Ctrl+w l</code> 移至右边视窗</li>
<li>普通模式下<code>Ctrl+w J</code> 将当前视窗移至下面</li>
<li>普通模式下<code>Ctrl+w K</code> 将当前视窗移至上面</li>
<li>普通模式下<code>Ctrl+w H</code> 将当前视窗移至左边</li>
<li>普通模式下<code>Ctrl+w L</code> 将当前视窗移至右边</li>
<li>普通模式下<code>Ctrl+w -</code> 减小视窗的高度</li>
<li>普通模式下<code>Ctrl+w +</code> 增加视窗的高度</li>
</ul>
<h4 id="2-3-2-">2.3.2 视窗操作练习</h4>
<p>打开练习文件</p><pre><code class="line-numbers language-js"><span class="hljs-meta">$</span><span class="bash"> vim <span class="hljs-number">1</span>.txt</span>
</code></pre><ul>
<li>命令行模式下输入<code>:new</code> 打开一个新的vim视窗</li>
<li>命令行模式下输入<code>:vsp 2.txt</code> 打开新的横向视窗来编辑2.txt</li>
<li>命令行模式下输入<code>:vsp 3.txt</code> 打开新的横向视窗来编辑3.txt</li>
<li>如果使用非chrome浏览器可以使用<code>Ctrl+w</code>进行视窗间的跳转</li>
<li>分别在不同视窗的命令行模式下输入<code>:q!</code>退出多视窗编辑</li>
</ul>
<p></p><h3 id="labdoc-header-7">2.4 文档加密</h3>
<h4 id="2-4-1-">2.4.1 创建加密文档</h4>
<pre><code class="line-numbers language-js"><span class="hljs-meta">$</span><span class="bash"> vim -x file1</span>
</code></pre><p>输入您的密码
确认密码
这样在下一次打开时，vim就会要求你输入密码</p><h3 id="labdoc-header-8">2.5 在vim执行外部命令</h3>
<p>在命令行模式中输入<code>!</code>可以执行外部的shell命令</p><ul>
<li><code>:!ls</code>  用于显示当前目录的内容</li>
<li><code>:!rm FILENAME</code>用于删除名为 FILENAME 的文件</li>
<li><code>:w FILENAME</code>可将当前 VIM 中正在编辑的文件另存为 FILENAME 文件</li>
</ul>
<h3 id="labdoc-header-9">2.6 帮助系统</h3>
<h4 id="2-6-1-vim-">2.6.1 vim中的查看帮助</h4>
<ul>
<li>普通模式下按<code>F1</code>打开<code>vim</code>自己预设的帮助文档</li>
<li>命令行模式下输入<code>:h shiftwidth</code> 打开名为<code>shiftwidth</code>的帮助文件</li>
<li>命令行模式下输入<code>:ver</code> 显示版本及参数</li>
</ul>
<h3 id="labdoc-header-10">2.7 功能设定</h3>
<h4 id="2-7-1-vim-">2.7.1 vim的功能设定</h4>
<p>可以在编辑文件的时候进行功能设定，如命令行模式下输入<code>:set nu</code>（显示行数），设定值退出vim后不会保存。要永久保存配置需要修改vim配置文件。
vim的配置文件<code>~/.vimrc</code>(环境中配置文件在/etc/vim/vimrc)，可以打开文件进行修改，不过务必小心不要影响vim正常使用</p><h4 id="2-7-2-">2.7.2 获取目前的设定</h4>
<ul>
<li>命令行模式下输入<code>:set</code>或者<code>:se</code>显示所有修改过的配置</li>
<li>命令行模式下输入<code>:set all</code> 显示所有的设定值</li>
<li>命令行模式下输入<code>:set option?</code> 显示option的设定值</li>
<li>命令行模式下输入<code>:set nooption</code> 取消当前设定值</li>
</ul>
<h4 id="2-7-3-set-">2.7.3 set功能的说明</h4>
<ul>
<li>命令行模式下输入<code>:set autoindent(ai)</code> 设置自动缩进</li>
<li>命令行模式下输入<code>:set autowrite(aw)</code> 设置自动存档，默认未打开</li>
<li>命令行模式下输入<code>:set background=dark</code>或<code>light</code>，设置背景风格</li>
<li>命令行模式下输入<code>:set backup(bk)</code> 设置自动备份，默认未打开</li>
<li>命令行模式下输入<code>: set cindent(cin)</code> 设置C语言风格缩进</li>
</ul>
<p>更多详细参数请参考vim手册</p><h2 id="labdoc-header-11">三、实验总结</h2>
<p>通过这四章的简单学习，相应你应该掌握了vim的基本操作和使用，但本课程的主要目的是为了让你在学习上面其他需要用到vim的课程中不会有任何问题。如果你想单纯的学习并熟练掌握vim编辑器，通过各类教程包括本课程的学习是不能够满足的，因为要熟练掌握是跟你个人的选择有关，这需要你不断的练习并坚持长期使用vim完成各种编辑操作才能达到，同时你还需要掌握如何更改和编写vim的配置文件及安装各类vim插件来实现各种强大的功能满足你的各种苛刻的需求，最后希望你在玩得愉快。</p></div>
</body>
</html>